Go 語言本身就提供非常豐富的基礎套件,如上一篇所使用到的 fmt.Println()
就是官方所提供的,基本上不依賴任何的外部套件,僅僅使用語言本身所提供的功能,就可以實現大部分的功能
如果還沒安裝環境的,介紹一個官方提供的線上編譯網站 Go Playground,感受一下 Go 所帶來魅力吧
Go 的關鍵字僅僅也才 25 個,相比於其他語言簡潔許多
break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var
宣告變數的方式,主要分成兩種
// 方式1.
var n1 int // 自動賦予預設初始值
var n2 int = 2
var n3, n4 int // 多變數宣告
// 方式2. 短變數宣告
n5 := 0 // 自動推斷型別
n4, n5 := 1, 2 // 多變數宣告
// 2d := "2D" // 變數名稱不能以數字開頭
指標 pointer(有學過C語言的應該會非常熟悉
x := 1
p := &x // 指向 x 所在位址
fmt.Println(*p) // 取得位址的值
p := new(int) // 建立 int 的指標
指派 assign
name := "amy"
n1, n2 := 1, 2
name = "bob" // 單變數指派
n1, n2 = 3, 4 // 多變數指派
n1, n2 = n2, n1 // 可以直接交換,不需額外暫存變數作交換
for
迴圈
for i := 0; i < 5; i++ {
fmt.Println(".~~~.")
}
等同於 while
迴圈
i := 0
for i < 5 {
fmt.Println(i)
i++
}
無窮迴圈
for {
fmt.Println(1)
}
if
if i > 10 {
fmt.Println("if")
else if i > 5 {
fmt.Println("else if")
} else {
fmt.Println("else")
}
switch
i := 3
switch i {
case 1:
fmt.Println("1")
case 2:
fmt.Println("2")
case 3:
fmt.Println("3")
default:
fmt.Println("default")
}
範圍 Scope,由內層尋找至外層
package main
import "fmt"
var g = "g"
var g2 = "g2"
func main() {
g := "gg"
fmt.Println(g) // "gg"
fmt.Println(g2) // "g2"
}
匯入 import
import "fmt" // 引入套件
// 引入多組套件
import (
"fmt"
"os"
)
套件初始化,只會執行一次
func init() {
// init
}